package com.hare.system_server.controller;


import com.hare.common.result.R;
import com.hare.common.utils.PageUtils;
import com.hare.system_api.dto.SysRoleDTO;
import com.hare.system_api.vo.SysRoleVO;
import com.hare.system_server.serice.SysRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @program: Hare
 * @description: 角色相关Api
 * @author: Hare
 * @create: 2022-12-09 15:55
 * @Version 6.0.1
 **/
@RestController
@RequestMapping("/role")
public class SysRoleController {

    @Autowired
    SysRoleService sysRoleService;


    /**
     * 角色管理=> 获取角色信息(分页)
     *
     * @param role 角色信息
     * @return
     */
    @PostMapping("/pageRoleInfo")
    public R<PageUtils<SysRoleVO>> pageRoleInfo(@RequestBody SysRoleDTO role) {
        return R.success(sysRoleService.pageRoleInfo(role));
    }


    /**
     * 角色管理=> 修改角色状态
     *
     * @param role 角色信息
     * @return
     */
    @PostMapping("/updateRoleStatus")
    public R updateRoleStatus(@RequestBody SysRoleDTO role) {
        sysRoleService.checkUserAllowed(role);
        return R.successOk(sysRoleService.updateRoleStatus(role));
    }

    /**
     * 角色管理=> 新增 or 修改角色信息
     *
     * @param role 角色信息
     * @return
     */
    @PostMapping("/insertOrupdateRole")
    public R insertOrupdateRole(@RequestBody SysRoleDTO role) {
        return R.successOk(sysRoleService.insertOrUpdate(role));
    }


    /**
     * 角色管理=> 根据角色id删除角色信息
     *
     * @param role 角色id
     * @return
     */
    @PostMapping("/deleteRole")
    public R deleteRole(@RequestBody SysRoleDTO role) {
        return R.successOk(sysRoleService.deleteRole(role));
    }

    /**
     * 角色管理=> 根据角色id查询角色信息
     *
     * @param role 角色id
     * @return 角色信息
     */
    @PostMapping("/getRoleInfo")
    public R<SysRoleVO> getRoleInfo(@RequestBody SysRoleDTO role) {
        return R.success(sysRoleService.getRoleInf(role));
    }
}
